Data transmission networks are used to provide different types of data. Some data, such as real time telephony, must be provided quickly, and it is acceptable if a small portion of the data is lost. For other types of data, such as executable programs and other files, an entire data file must be received without any loss. In the IP protocol suite, the UDP protocol is used for data requiring fast delivery, while TCP is used for data requiring reliable delivery (i.e., without any loss). In the TCP protocol, the receiver continuously transmits acknowledgements on the data it receives, and retransmissions are performed when data was not acknowledged.
When it is desired to provide the same data to many users, multicasting may be used, in order to reduce the bandwidth consumption. In multicasting, a single transmission is listened to by a plurality of receivers. It is generally not practical for each receiver to provide continuous acknowledgements of the multicast data directly to the transmitter. Various methods, such as described in U.S. Pat. No. 5,541,927 by Kristol, Paul and Sabnani and in U.S. Pat. No. 6,269,080 to Kumar, the disclosures of which are incorporated herein by reference, were suggested to reduce the number of acknowledgements transmitted to the transmitter, by designating one or more representative acknowledgement providers. In addition, it has been suggested, for example in U.S. Pat. No. 5,727,002, the disclosure of which is incorporated herein by reference, to use a NAK acknowledgement method, in which receivers send acknowledgements only for data they did not receive.
Generally, when a packet was not received by one or more of the receivers, the sender re-multicasts the packet to all the receivers. In some cases, however, when only a single receiver needs to receive a retransmission, the packet is transmitted to that receiver on a point-to-point connection, if such a connection is available.
Cellular phones can be used for receiving video clips and other data, in addition to their use for point to point telephone communication. Multicasting the data to the cellular phones or to other mobile stations allows efficient use of the available bandwidth, such that large amounts of data can be provided to the cellular phones without requiring prohibitive amounts of bandwidth. In some cases, users are required to subscribe to a multicast service if they desire to receive the data. Upon subscribing, the users receive a decoding key which they use in decoding the multicast data. The key may be changed periodically in order to prevent users terminating their subscription from being able to decode data transmitted after the end of their subscription period.
A user does not always want to subscribe for a service for a long duration. For example, in some cases it may be desired to allow users to pay for each piece of data they receive, separately. In order to provide a reliable service, it is important to bill clients only if they actually received the multicast data. In addition, in order to maximize revenues it is desired to maximize the number of users receiving the multicast data.
In some networks, most users are generally continuously listening to the multicast channel, such that a multicast message may be transmitted to the users, if desired, without previous notice. In other networks, however, the receivers are not continuously tuned onto the multicast channel and the receivers must be notified about the transmission in order to tune onto the channel at the designated time. Mobile stations, for example, are generally assigned a wireless channel only when the data is actually transmitted, in order to conserve battery power and bandwidth. In such networks, the data source generally transmits a notification message to the mobile stations, instructing them to tune onto the multicast channel.
U.S. Pat. No. 6,453,438 to Miller et al., the disclosure of which is incorporated herein by reference, describes a method for managing multicast of data to receivers on a receiver list. The receivers on the list are notified on the upcoming data transmission and are requested to reply as to whether they will receive the data. Receivers responding that they will not be able to receive the transmission are added to a recovery list. At a later time, an attempt is made to provide the data to the receivers on the recovery list.
The transmission of multicast data in a cell of a cellular network generally requires higher power transmission levels than unicast data, in order to allow for all the receivers in the cell to receive the data. Higher transmission power levels consume more system resources, especially in noise-budget cellular networks (e.g., CDMA).
U.S. Pat. No. 6,360,076 to Segura et al., the disclosure of which is incorporated herein by reference, describes a method of adjusting the transmission power to the locations of the receivers in the cell. Thus, the power and/or bandwidth consumption may be reduced when the receivers are located, for example, close to the transmitter.
U.S. patent publication 2003/0007499 to Rajahalme, the disclosure of which is incorporated herein by reference, suggests determining whether to use multicast, unicast or a combination of multicast and unicast (i.e., some users receive the data in a multicast transmission, others in a unicast transmission) in providing data to subscribers within a specific cell. According to the '499 publication, broadcasting to the whole cell uses a lot of power and usually requires a robust channel coding, because there is no feedback possibility for the receivers to indicate lost frames. The '499 publication states that the invention is based on the premise that the membership of the group communication is known when allocating radio resources for the group communication delivery.
The combination of multicast and unicast is suggested for use when it would be cheapest to deliver the data by multicast, but some of the group members are not able to receive the broadcast for one reason or another. In other words, the multicast group is handled as subgroups to which the multicast packet is delivered using different methods.